<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>wdttb: xwdttb_intr_example.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xlogo_bg.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">wdttb
   </div>
   <div id="projectbrief">Vitis Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Overview</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="globals.html"><span>APIs</span></a></li>
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="pages.html"><span>Examples</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('xwdttb__intr__example_8c.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">xwdttb_intr_example.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<div class="textblock"><p>This file contains a design example using the TimeBase Watchdog Timer Device (WdtTb) driver and hardware device using interrupt mode (for the WDT interrupt). </p>
<dl class="section note"><dt>Note</dt><dd></dd></dl>
<p>This example assumes that the reset output of the WdtTb device is not connected to the reset of the processor. This example will not return if the interrupts are not working.</p>
<pre></pre><pre>MODIFICATION HISTORY:</pre><pre>Ver   Who  Date     Changes
</p>
<hr/>
<p>
1.00b hvm  05/10/06 First release
1.00b sv   05/30/06 Updated to support interrupt examples in Test App
1.11a hvm  03/30/09 Modified the example to avoid a race condition
2.00a ktn  10/22/09 Updated the example to use the HAL APIs/macros.
              Updated the example with support for MicroBlaze.
2.00a ssb  01/11/01 Updated the example to be used with the SCUGIC in
              Zynq.
4.0   sha  02/04/16 Added debug messages.
                    Updated WdtTbInstancePtr-&gt;RegBaseAddress -&gt;
                    WdtTbInstancePtr-&gt;Config.BaseAddr.
                    Calling XWdtTb_LookupConfig and XWdtTb_CfgInitialize
                    functions instead of XWdtTb_Initialize for
                    initialization.
5.0     sne  03/26/20 Updated example with interrupt id's.
5.1     sne  06/01/20 Corrected fabric watchdog interrupt id.
5.7     sb   07/12/23 Added support for system device-tree flow.
</pre> </div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a68bcdd5a44aaa605fc420bbee459b4bb"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xwdttb__intr__example_8c.html#a68bcdd5a44aaa605fc420bbee459b4bb">WdtTbIntrExample</a> (INTC *IntcInstancePtr, <a class="el" href="struct_x_wdt_tb.html">XWdtTb</a> *WdtTbInstancePtr, u16 WdtTbDeviceId, u16 WdtTbIntrId)</td></tr>
<tr class="memdesc:a68bcdd5a44aaa605fc420bbee459b4bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function tests the functioning of the TimeBase WatchDog Timer module in the Interrupt mode (for the WDT interrupt).  <a href="#a68bcdd5a44aaa605fc420bbee459b4bb">More...</a><br/></td></tr>
<tr class="separator:a68bcdd5a44aaa605fc420bbee459b4bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a840291bc02cba5474a4cb46a9b9566fe"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xwdttb__intr__example_8c.html#a840291bc02cba5474a4cb46a9b9566fe">main</a> (void)</td></tr>
<tr class="memdesc:a840291bc02cba5474a4cb46a9b9566fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main function to call the WdtTb interrupt example.  <a href="#a840291bc02cba5474a4cb46a9b9566fe">More...</a><br/></td></tr>
<tr class="separator:a840291bc02cba5474a4cb46a9b9566fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a840291bc02cba5474a4cb46a9b9566fe"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int main </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Main function to call the WdtTb interrupt example. </p>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if successful</li>
<li>XST_FAILURE, otherwise.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xwdttb__intr__example_8c.html#a68bcdd5a44aaa605fc420bbee459b4bb">WdtTbIntrExample()</a>.</p>

</div>
</div>
<a class="anchor" id="a68bcdd5a44aaa605fc420bbee459b4bb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int WdtTbIntrExample </td>
          <td>(</td>
          <td class="paramtype">INTC *&#160;</td>
          <td class="paramname"><em>IntcInstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_x_wdt_tb.html">XWdtTb</a> *&#160;</td>
          <td class="paramname"><em>WdtTbInstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u16&#160;</td>
          <td class="paramname"><em>WdtTbDeviceId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u16&#160;</td>
          <td class="paramname"><em>WdtTbIntrId</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function tests the functioning of the TimeBase WatchDog Timer module in the Interrupt mode (for the WDT interrupt). </p>
<p>After one expiration of the WDT timeout interval, an interrupt is generated and the WDT state bit is set to one in the status register. If the state bit is not cleared (by writing a 1 to the state bit) before the next expiration of the timeout interval, a WDT reset is generated. A WDT reset sets the WDT reset status bit in the status register so that the application code can determine if the last system reset was a WDT reset.</p>
<p>This function assumes that the reset output of the WdtTb device is not connected to the reset of the processor. The function allows the watchdog timer to timeout such that a reset will occur if it is connected.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">IntcInstancePtr</td><td>is a pointer to the instance of the INTC driver. </td></tr>
    <tr><td class="paramname">WdtTbInstancePtr</td><td>is a pointer to the instance of WdtTb driver. </td></tr>
    <tr><td class="paramname">WdtTbDeviceId</td><td>is the Device ID of the WdtTb Device and is typically XPAR_&lt;WDTTB_instance&gt;_DEVICE_ID value from xparameters.h. </td></tr>
    <tr><td class="paramname">WdtTbIntrId</td><td>is the Interrupt Id of the WatchDog and is typically XPAR_&lt;INTC_instance&gt;_&lt;WDTTB_instance&gt;_WDT_INTERRUPT_VEC_ID value from xparameters.h.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if successful.</li>
<li>XST_FAILURE, otherwise.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This example will not return if the interrupts are not working. </dd></dl>

<p>References <a class="el" href="struct_x_wdt_tb___config.html#a3867e6f3038fe367e0072a85125f5391">XWdtTb_Config::BaseAddr</a>, <a class="el" href="struct_x_wdt_tb.html#a9841f60870d97e7bc296dd419c75023f">XWdtTb::Config</a>, <a class="el" href="group__wdttb__api.html#gadf3c428b985d77e28b5df5cd5d82dff3">XWdtTb_CfgInitialize()</a>, <a class="el" href="group__wdttb__api.html#gaee07fe98efd02a8c9a21aeb15b968dc3">XWdtTb_LookupConfig()</a>, <a class="el" href="xwdttb__hw_8h.html#afa6b4b0d4c816cd9bd6da3c9fe7caac3">XWdtTb_ReadReg</a>, <a class="el" href="group__wdttb__api.html#gaa9e410506154d92a551b6261742d98b1">XWdtTb_SelfTest()</a>, <a class="el" href="group__wdttb__api.html#gaab195e280eca1e2985509d954c2e4e52">XWdtTb_Start()</a>, <a class="el" href="group__wdttb__api.html#gacd5617bce061deaa57743ea46008daf8">XWdtTb_Stop()</a>, <a class="el" href="group__wdttb__api.html#gab723ef9be858b9aeb33600ca2d100bd0">XWT_CSR0_WRS_MASK</a>, and <a class="el" href="group__wdttb__api.html#ga7acdd92b397bdfb0e14b649d4525bb2b">XWT_TWCSR0_OFFSET</a>.</p>

<p>Referenced by <a class="el" href="xwdttb__gwdt__intr__example_8c.html#a840291bc02cba5474a4cb46a9b9566fe">main()</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
	<p class="footer">&copy; Copyright 2015-2022 Xilinx, Inc. All Rights Reserved.</p>
	<p class="footer">&copy; Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved.</p>
</div>
</body>
</html>
